package com.smm.web.vmc.service;

import com.smm.web.vmc.domain.Alam;
import com.smm.web.vmc.domain.Pager;
import com.smm.web.vmc.dto.AlamQueryDto;

import java.util.List;
import java.util.Map;

/**
 * Created by zhenghao on 2016/9/5.
 *
 */
public interface AlamService {


    List<Alam> getAlamListByUser(int userId);

    /**
     * 按查询条件、用户编号获取所有报警记录
     * @param queryDto
     * @param userId
     * @return
     */
    List<Alam> queryByQueryAndUser(AlamQueryDto queryDto, int userId);

    Alam getOneById(int alamId);

    /**
     * 获取指定仓单的所有报警记录
     * @param repNo
     * @return
     */
    List<Alam> getAlamListByRep(String repNo);

    /**
     * 获取指定仓单的所有报警记录，并按日期分组
     * @param repNo
     * @return
     */
    Map<String,List<Alam>> getGroupByDateForRep(String repNo);


    /**
     * 处理报警记录
     * @param id
     * @param desc
     * @throws Exception
     */
    void process(int id, String desc) throws Exception;


    /**
     * 生成报警记录
     * @param alam
     * @throws Exception
     */
    void add(Alam alam) throws Exception;

    /**
     * 查询指定用户的报警记录列表， 分页查询
     * @param userId
     * @param pager
     * @return
     */
    List<Alam> getPagerAlamListByUser(int userId, Pager pager);

    /**
     * 删除指定标签的所有报警记录
     * @param tagNo
     */
    void deleteAllByTag(String tagNo);

    /**
     * 删除指定仓单的所有报警记录
     * @param repNo
     * @throws Exception
     */
    void deleteAllByReceipt(String repNo) throws Exception;

    /**
     * 接收仓单报警信息并处理
     * @param repNo
     * @throws Exception
     */
    void recive(String repNo)throws Exception;
}
